home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 4 NO 1.st / POGOSRC.ARC / STLOGFX.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-11-20  |  1.9 KB  |  97 lines

  1.  
  2.     public _cscreen
  3.  
  4.  
  5.  
  6.     ; zero_screen(s)
  7.     public _zero_screen
  8. _zero_screen:
  9.     move.l    4(sp),a0
  10.     movem.l D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A7) ; save the world
  11.     move.w #200-1,D0
  12.     move.l    #0,d1
  13.     move.l    d1,d2
  14.     move.l    d2,d3
  15.     move.l    d3,d4
  16.     move.l    d4,d5
  17.     move.l    d5,d6
  18.     move.l    d6,d7
  19.     move.l    d7,a2
  20.     move.l    a2,a3
  21.     move.l    a3,a4
  22.     adda    #32000,a0
  23. cl_lp:  
  24.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A0)
  25.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A0)
  26.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A0)
  27.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A0)
  28.     dbf    D0,cl_lp
  29.     movem.l (A7)+,D2/D3/D4/D5/D6/D7/A2/A3/A4
  30.     rts
  31.  
  32.  
  33.     public _copy_lines
  34. _copy_lines
  35.     move.w    12(sp),d0
  36.     bra        cplines
  37.  
  38.     ; copy_screen(source, dest)  32000-byte block copy 
  39.     public _copy_screen
  40. _copy_screen:
  41.     move.w #200,D0
  42. cplines
  43.     move.l    4(sp),a0
  44.     move.l    8(sp),a1
  45.     movem.l D2/D3/D4/D5/D6/D7/A2/A3/A4,-(A7) ; save the world
  46.     bra zcp_lp
  47. cp_lp:  
  48.     movem.l (A0)+,D1/D2/D3/D4/D5/D6/D7/A2/A3/A4
  49.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,(A1)
  50.     movem.l (A0)+,D1/D2/D3/D4/D5/D6/D7/A2/A3/A4
  51.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,40(A1)
  52.     movem.l (A0)+,D1/D2/D3/D4/D5/D6/D7/A2/A3/A4
  53.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,80(A1)
  54.     movem.l (A0)+,D1/D2/D3/D4/D5/D6/D7/A2/A3/A4
  55.     movem.l D1/D2/D3/D4/D5/D6/D7/A2/A3/A4,120(A1)
  56.     adda    #160,A1
  57. zcp_lp    dbf    D0,cp_lp
  58.     movem.l (A7)+,D2/D3/D4/D5/D6/D7/A2/A3/A4
  59.     rts
  60.  
  61.     ; exchange_screen(s1, s2)  32000-byte array swap
  62.     public _exchange_screen
  63. _exchange_screen
  64.     move.l    4(sp),a0
  65.     move.l    8(sp),a1
  66.     move.l D2,-(A7) ; save the world
  67.     move.w #8000-1,D0
  68. ex_lp:  move.l (A0),D1
  69.     move.l (A1),D2
  70.     move.l D2,(A0)+
  71.     move.l D1,(A1)+
  72.     dbf    D0,ex_lp
  73.     move.l (A7)+,D2
  74.     rts
  75.  
  76.     public _copy_bytes
  77. _copy_bytes
  78.     move.l 4(sp),a0
  79.     move.l 8(sp),a1
  80.     move.w 12(sp),d0
  81.     bra zcp
  82. cpl move.b (a0)+,(a1)+
  83. zcp dbra d0,cpl
  84.     rts
  85.  
  86.  
  87.     public _copy_words
  88. _copy_words
  89.     move.l 4(sp),a0
  90.     move.l 8(sp),a1
  91.     move.w 12(sp),d0
  92.     bra zcpw
  93. cplw move.w (a0)+,(a1)+
  94. zcpw dbra d0,cplw
  95.     rts
  96.  
  97.